package nl.moviefan.site.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.io.Serializable;
import javax.persistence.*;

/**
 * Abstracte klasse omdat er meerdere child klassen in de toekomst van zouden
 * kunnen erven. Omdat er gebruik gemaakt wordt van overerving hebben we gekozen 
 * voor een discriminatortype onderscheid van alle child klassen. 
 * Annotaties zijn van Hibernate.
 */
@Entity
@JsonIgnoreProperties(ignoreUnknown = true)
@Table(name = "artikel")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue(value = "artikelpie")
public abstract class Artikel implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "artikelID")
    private long artikelID;

    @Column(name = "vestigingID")
    private int vestigingID;

    public int getVestigingID() {
        return vestigingID;
    }

    public long getArtikelID() {
        return artikelID;
    }

    public void setArtikelID(long artikelID) {
        this.artikelID = artikelID;
    }

    public void setVestigingID(int vestigingID) {
        this.vestigingID = vestigingID;
    }

}
